home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / 4cmp22s.zip / DOSGO.4TH < prev    next >
Text File  |  1994-10-30  |  1KB  |  31 lines

  1. \ HEADER FOR .COM FILES                                06/21/94
  2.  
  3. \ COPYRIGHT 1985, 1991 (C) BY THOMAS ALMY.  ALL RIGHTS RESERVED
  4. \ Permission is granted to registered users of ForthCMP to
  5. \ sell or distrubute computer programs incorporating the compiled
  6. \ contents of this file.
  7. \ MS is a trademark of Microsoft Corporation.
  8. \ This file is for standard MS-DOS operation, with or without a
  9. \  separate stack segment.
  10.  
  11. 10  ASM HEX FWD,  ( skip the variables )
  12. VARIABLE DP       ( start free ram = HERE, set by END command )
  13. VARIABLE S0       ( top of stack )
  14. VARIABLE R0       ( top of return stack )
  15. VARIABLE BASE     ( radix )     0A BASE !  ( decimal )
  16. THEN,
  17. SEPSSEG? [IF] AX CS <SEG pssize # AX ADD AX SS >SEG [THEN]
  18. FIND PSIZE [IF] DROP ( PSIZE is constant size of program seg)
  19. PSIZE 0 10. D+ 10 SM/REM NIP
  20. DUP 10 * rssize - DUP # SP MOV  ( set param stack )
  21.   CELL- # S0 [] MOV  ( set S0 )
  22. DUP 10 * # BP MOV  BP R0 [] MOV  ( set return stack, R0 )
  23. 4A # AH MOV  SEPSSEG? [IF] pssize + [THEN] # BX MOV  21 INT   [THEN]
  24. FIND PSIZE [IF] DROP [ELSE]
  25. rssize NEGATE DUP # SP MOV  ( set param stack )
  26.   CELL- # S0 [] MOV  ( set S0 )
  27. 0 # BP MOV  BP R0 [] MOV  ( set return stack, R0 ) [THEN]
  28. 0 0 IN/OUT NEED MAIN CLD CALL' MAIN   ( call main program )
  29. CODE bye 4C00 # AX MOV 21 INT END-CODE
  30. FORTH  0A = [IF] DECIMAL [THEN]
  31.